package thread;

import java.util.Scanner;

//旋转数组（顺时针）

//首先，一个正方形只能旋转四次
//我们可以将问题转化为1-4次的旋转
//接着通过对比发现，每一次旋转都是在上次旋转的基础上旋转一次
//因此，我们将一次旋转记录下来，下一次旋转就是在该基础上在旋转一次即可

public class demo {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        //输入数组长乘宽
        int n = in.nextInt();
        int [][] arr = new int[n][n];
        for(int i = 0;i<n;i++){
            for(int j = 0;j<n;j++){
                arr[i][j] = in.nextInt();
            }
        }
        //输入旋转次数
        int m = in.nextInt();
        m%=4;
        for (int k = 0;k<m;k++){
            int[][] arr1 = new int[n][n];

            //通过观察，可以发现是由(0，0)—>(0.1),(0,1)->(1.1),(1,0)->(0,0),(1,1)->(1,0)
            for(int i = 0;i<n;i++){
                for(int j = 0;j<n;j++){
                    arr1[j][n-1-i] = arr[i][j];
                }
            }
            //记录数组
            arr = arr1;
        }

        for(int i = 0;i<n;i++){
            for(int j = 0;j<n;j++){
                System.out.print(arr[i][j] +" ");
            }
            System.out.println();
        }
    }
}
